package com.yutel.pinyin;

public class StrUtil {
	public static void main(String[] args) {
		test();
		String t="~!@#$%^&*()_+<>?、｝｛[]［］｛｝'～！＠＃￥％……＆＊（）——＋“？：》《zxcbmnm,sadhkfyuwqetroewｑｗｅｒｔｙｕｉｏｐａｓｄｆｇｈｊｋｌｚｘｃｖｂｎｍＱＷＥＲＴＹＵＩＯＰＡＳＤＦＧＨＪＫＬＺＸＣＶＢＮＭ１２３４５６７８９０";
		String dd="法国网球公开赛通常在每年的5月至6月举行6,是每年继澳大利亚网球公开赛之后,排在第二个进行的大满贯赛事。法国公开赛规定男子每场比赛采用5盘3胜淘汰制,女子采用3盘2胜淘汰制,而且球场属于慢速红土场地,利于底线对抗,所以,一场比赛打上4个小时是司空见惯的。在这样的球场上,花这么长的时间去打一场比赛";
		String ff="自我组织的团队是一个平行的组织，由于没有管理与被管理之间的关系，因而氛围更加和谐，组织更加开放，管理更加松散，这种自由化的组织方式更容易让团队成员体现自我价值，对团队会产生一种认同感，促发他们的开发热情，从而提高开发效率。平等的关系会促进团队成员的有效沟通，自由的管理有助于发挥团队成员的技术特长，开放的平台则能够保证协作的效率。一个卓越的团队应该是目标一致，团结协作，同时又能各司其职，有条不紊。";
		String out=export(null);
		System.out.println("dd="+dd); 
		System.out.println("dd="+out); 
		acsii(t);
	}
	public static String ToDBC(String input) {
		if (input == null) return "" ;
		char[] c = input.toCharArray();
		for (int i = 0; i < c.length; i++) {
			if (c[i] == 12288) {
				c[i] = (char) 32;
				continue;
			}
			if (c[i] > 65280 && c[i] < 65375) {
				c[i] = (char) (c[i] - 65248);
			}
		}
		return new String(c);
	}
	public static String ToBC(String input) {
		if (input == null) return "" ;
		char[] c = input.toCharArray();
		for (int i = 0; i < c.length; i++) {
			if(c[i]==32) {
				c[i]=(char)12288;
			}
			if (c[i] > 32 && c[i] < 127) {
				c[i] = (char) (c[i] + 65248);
			}
		}
		return new String(c);
	}
	public static String export(String input) {
		if (input == null) return "" ;
		StringBuffer sb=new StringBuffer(input);
		for (int i = 0; i < sb.length(); i++) {
			char c=sb.charAt(i);
			if(c<48) {
				sb.deleteCharAt(i--);
			} else if (c > 57 && c < 65) {
				sb.deleteCharAt(i--);
			} else if (c > 90 && c < 97) {
				sb.deleteCharAt(i--);
			} else if (c > 122 && c < 128) {
				sb.deleteCharAt(i--);
			} else if (c > 8207 && c < 8232) {
				sb.deleteCharAt(i--);
			} else if (c > 12288 && c < 12444) {
				sb.deleteCharAt(i--);
			} else if (c > 65280 && c < 65296) {//
				sb.deleteCharAt(i--);
			} else if (c > 65305 && c < 65313) {
				sb.deleteCharAt(i--);
			} else if (c > 65338 && c < 65345) {
				sb.deleteCharAt(i--);
			} else if (c > 65370 && c < 65382) {
				sb.deleteCharAt(i--);
			} else if(c==65509) {
				sb.deleteCharAt(i--);
			}
		}
		return sb.toString();
	}
	public static void test() {
		System.out.println("char="+(int)'〞');
		for(int i=0;i<128;i++) {
			System.out.print((char)(i+12315));
		}
		System.out.println();
	}
	public static void acsii(String input) {
		char[] c = input.toCharArray();
		for (int i = 0; i < c.length; i++) {
			System.out.print((int)c[i]+",");
		}
		System.out.println();
	}
	public static boolean isChinese(char c) {
		Character.UnicodeBlock ub = Character.UnicodeBlock.of(c);
		if (ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS
				|| ub == Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS
				|| ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A
				|| ub == Character.UnicodeBlock.GENERAL_PUNCTUATION
				|| ub == Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION
				|| ub == Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS) {
			return true;
		}
		System.out.println("is not letter="+c);
		return false;
	}
	public static boolean checkNameChese(String name) {
		boolean res = true;
		char[] cTemp = name.toCharArray();
		System.out.println("name="+cTemp.length);
		for (int i = 0; i < name.length(); i++) {
			if (!isChinese(cTemp[i])) {
				res = false;
				break;
			}
		}
		return res;
	}
}
